export const metadata = { sidebar_position: 1, title: "🔴 软提示" };

# 🔴 软提示

提示微调(Prompt Tuning)(@lester2021power) 是模型微调（@khashabi2021prompt）的一种替代方法，它会固定模型权重并更新提示的参数，生成的提示被称为“软提示”。

<div style={{ textAlign: "center" }}>
  <Image
    src="/docs/assets/trainable/prompt_tuning.webp"
    width={1074}
    height={556}
    style={{ width: "500px", margin: "auto" }}
  />
</div>

<div style={{ textAlign: "center" }}>
  模型微调与提示调整的对比 (Lester et al.)
</div>

上面的图片对比了模型微调和提示调整。在模型微调中，你会在不同任务上对同一个模型进行微调。这会产生一些不同的模型，但你不能保证可以轻松地对不同的任务进行批处理输入。

另一方面，提示调整可以让你为所有任务使用同一个模型。你只需要在推理时附加适当的提示，这样可以使不同任务之间的批处理更容易。这是常规提示的同样优点。此外，为单个模型跨多个任务训练的软提示通常会具有相同的标记长度。

## 工作原理

为了理解软提示背后的基本逻辑，让我们思考一下如何在给定提示**What's 2+2?**上进行模型推理：

对于给定的: `What's 2+2?`.

1. 它可能被标记为 `What, 's, 2, +, 2, ?`.

2. 然后，每个标记将被转换为一组值的向量。

3. 这些向量可以视为模型参数。模型可以进一步训练，仅调整这些提示的权重。

请注意，一旦我们开始更新这些权重，标记的向量就不再对应于词汇表中实际的嵌入。

# 结果

提示调整对较大的模型表现更好。较大的模型也需要较少的软提示标记。但是，超过20个标记并不会产生显著的性能提高。
